<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- creator-analyze.qdoc -->
  <title>Analyzing Code | Qt Creator Manual</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt Creator Manual</a></td><td >Analyzing Code</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="index.html">Qt Creator Manual 4.11.1</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="creator-troubleshooting-debugging.html" />
  <link rel="next" href="creator-qml-performance-monitor.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="creator-troubleshooting-debugging.html">Troubleshooting Debugger</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="creator-qml-performance-monitor.html">Profiling QML Applications</a>
</p><p/>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Analyzing Code</h1>
<span class="subtitle"></span>
<!-- $$$creator-analyze-mode.html-description -->
<div class="descr"> <a name="details"></a>
<p>You can use the code analysis tools in the <b>Debug</b> mode. To switch to <b>Debug</b> mode, select <b>Debug</b> in the mode selector, or select the <b>Analyze</b> menu and then select a tool. When you are in the <b>Debug</b> mode, you can switch between tools by selecting them in the menu on the toolbar.</p>
<p>You can drag and drop the views in the <b>Debug</b> mode to new positions on the screen. The size and position of views are saved for future sessions. Select <b>Window &gt; Views &gt; Reset to Default Layout</b> to reset the views to their original sizes and positions.</p>
<p>You can use the following code analysis tools in the <b>Debug</b> mode:</p>
<ul>
<li><a href="creator-qml-performance-monitor.html">QML Profiler</a><p>You can inspect binding evaluations, signal handling, and painting operations when running QML code. This is useful for identifying potential bottlenecks, especially in the evaluation of bindings.</p>
</li>
<li><a href="creator-valgrind-overview.html">Valgrind Code Analysis Tools</a><p>You can detect problems in memory management by using the Memcheck tool and find cache misses in the code by using the Callgrind tool.</p>
</li>
<li><a href="creator-clang-tools.html">Clang Tools</a><p>You can detect problems in C, C++, and Objective-C programs by using Clang-Tidy and Clazy.</p>
</li>
<li><a href="creator-heob.html">Heob</a><p>You can use the Heob heap observer on Windows to detect buffer overruns and memory leaks.</p>
</li>
<li><a href="creator-cpu-usage-analyzer.html">Performance Analyzer</a><p>You can analyze the CPU usage of embedded applications and Linux desktop applications with the Performance Analyzer that integrates the Linux Perf tool.</p>
</li>
<li><a href="creator-cppcheck.html">Cppcheck</a><p>You can use the experimental Cppcheck plugin to detect undefined behavior and dangerous coding constructs.</p>
</li>
<li><a href="creator-ctf-visualizer.html">Chrome Trace Format Visualizer</a><p>You can use the Chrome Trace Format (CTF) Visualizer to view Chrome trace events. This is especially useful when viewing large trace files that are difficult to visualize using the built-in trace-viewer (<code>chrome://tracing</code>).</p>
</li>
</ul>
</div>
<!-- @@@creator-analyze-mode.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="creator-troubleshooting-debugging.html">Troubleshooting Debugger</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="creator-qml-performance-monitor.html">Profiling QML Applications</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
